import { Modal } from '@kedacom/react-next'

interface AlertModalProps {
	/**弹窗提示的内容 */
	msg?: string
	/**点击确认按钮的回调函数 */
	onOk?: Function
	/**多少秒后自动消失 */
	time?: number
	/**点击取消按钮的回调函数 */
	onCancel?: Function
	/**标题 */
	title?: string
	/**确定按钮的内容 */
	okText?: string
	/**取消按钮的内容 */
	cancelText?: string
}
/**
 * 提示弹窗
 * @param msg 弹窗提示的内容
 * @param time 几秒后自动弹窗消失，默认不会自动消失
 * @param title 弹窗的标题
 * @param onOk 点击确认按钮的回调函数
 * @param onCancel 点击取消按钮的回调函数
 * @param okText 确定按钮上的展示文本
 * @param cancelText 取消按钮上的展示文本
 */
const alertModal = ({
	msg,
	time,
	title = '提示',
	onOk,
	onCancel,
	okText = '确定',
	cancelText = '取消',
}: AlertModalProps) => {
	var n = Modal.alert({
		title: title,
		content: msg,
		duration: time ? time : undefined,
		className: 'alert-wrap',
		okText: okText,
		cancelText: cancelText,
		onOk: () => {
			n.hide()
			onOk && onOk()
		},
		onCancel: () => {
			n.hide()
			onCancel && onCancel()
		},
	})
}
interface ConfirmModalProps {
	/**弹窗提示的内容 */
	msg?: string
	/**点击确认按钮的回调函数 */
	onOk?: Function
	/**点击取消按钮的回调函数 */
	onCancel?: Function
	/**标题 */
	title?: string
	/**确定按钮的内容 */
	okText?: string
	/**取消按钮的内容 */
	cancelText?: string
}
/**
 * 确认弹窗
 * @param msg 弹窗提示的内容
 * @param title 弹窗的标题
 * @param onOk 点击确认按钮的回调函数
 * @param onCancel 点击取消按钮的回调函数
 * @param okText 确定按钮上的展示文本
 * @param cancelText 取消按钮上的展示文本
 */
const confirmModal = ({
	msg,
	title = '提示',
	onOk,
	onCancel,
	okText = '确定',
	cancelText = '取消',
}: ConfirmModalProps) => {
	var m = Modal.confirm({
		title: title,
		content: msg,
		className: 'confirm-wrap',
		okText: okText,
		cancelText: cancelText,
		onOk: () => {
			m.hide()
			onOk && onOk()
		},
		onCancel: () => {
			m.hide()
			onCancel && onCancel()
		},
	})
}

const Alert = (words: string, cb?: Function) => {
	const m = Modal.alert({
		title: '提示',
		onOk: () => {
			cb && cb()
			m.hide()
		},
		onCancel: () => {
			cb && cb()
			m.hide()
		},
		content: <div>{words}</div>,
	})
}

export { alertModal, confirmModal, Alert }
